home *** CD-ROM | disk | FTP | other *** search
- vs.1.1
-
- ;dx9 stuff
- ;********
- dcl_position v0
- dcl_normal v1
- dcl_binormal v2
- dcl_tangent v3
- dcl_texcoord0 v4
-
- ;Constant map from the NSF.
- ;
- ;CM_Defined WorldViewProjTranspose 0 0
- ;CM_Constant const_1_1_1_255 4 1 1.0,1.0,1.0,765.01
- ;CM_Global DirLight1Direction 5 1
- ;CM_Global DaCameraPosition 6 1
- ;CM_Constant Half 7 1 0.5,0.5,0.5,0.5
- ;CM_Defined InvWorldTranspose 8 0
-
-
- m4x4 oPos, v0, c0
-
- ; Find light vector in object space
- mov r5, c5 ;Get the light direction in world space.
- m3x3 r4, r5, c8 ;Transform to object space with inverse world mat
-
- ; Normalize light vector.
-
- dp3 r3.w, r4, r4
- rsq r2.w, r3.w
- mul r0.xyz, r4, r2.w
-
- mad r7.xyz, c7.x, v1, c7.y
- mad r8.xyz, c7.x, v2, c7.y
- mad r9.xyz, c7.x, v3, c7.y
-
- m3x3 oD0.xyz, r0, r7
-
-
- ;Specular calculation
- ;mov r1, v0
-
- m4x4 r1, v0, c16 ; to world
-
- add r5, -r1, c6
- ;mov r5, c6
-
- dp3 r3.x, r5.xyz, r5.xyz
- rsq r3.xyz, r3.x
- mul r5.xyz, r5.xyz, r3.xxx
-
- add r2.xyz, r5.xyz, c5 ;L + V
-
- dp3 r4.x, r2.xyz, r2.xyz ;normalize inv view vec
- rsq r4.xyz, r4.x
- mul r2.xyz, r2.xyz, r4.xyz
-
- ;mov r4, r5
- m3x3 r4, r2, c8 ;Transform to object space with inverse world mat
-
- ; Normalize light vector.
- dp3 r3.x, r4.xyz, r4.xyz
- rsq r3.xyz, r3.x
- mul r4.xyz, r4.xyz, r3.xxx
-
- m3x3 oD1.xyz, r4, r7
-
- ;dp3 r7.x, r4, v3 ;Tangent
- ;dp3 r7.y, r4, v2 ;Binormal
- ;dp3 r7.z, r4, v1 ;Normal
- ;mad oD1.xyz, r7.xyz, c7, c7 ;Scale and bias since texcoord in the pixel shader
-
- ;mov r2, -c6 ;find inv view vector
-
- ;m3x3 r4, r2, c8 ;Transform to object space with inverse world mat
-
- ;dp3 r3.x, r2, r2
- ;rsq r2.x, r3.x
- ;mul r3, r2.xyz, r2.xxx
-
-
- ;add r2.xyz, r3.xyz, r0 ;L + V
-
- ;dp3 r4.x, r2.xyz, r2.xyz ;normalize inv view vec
- ;rsq r4.xyz, r4.x
- ;mul r2.xyz, r2.xyz, r4.xyz
-
-
- ;r2 now holds the view vector. We need to get the half vector.
- ;add r3.xyz, r2.xyz, c5 ;L + V
- ;m3x3 r3, r3, c8
- ;dp3 r8.x, v5, r3 ;Tangent
- ;dp3 r8.y, v4, r3 ;Binormal
- ;dp3 r8.z, v3, r3 ;Normal
-
- ;mad oD1.xyz, r7.xyz, c7, c7
-
-
-
-
- ;Ambient Lighting - rest will be done in ps
- ;mov r1, c10 ;Move in the ambient material so we can multiply
- ;mul oD0, r1, c9 ;Modulate the ambient light by material
-
- ; Texture coordinates for the base map and normal map and gloss.
- mov oT0.xy, v4.xy
- mov oT1.xy, v4.xy
- mov oT2.xy, v4.xy
-
- mov r3, c12
- m4x4 r1, v0, c16
- mul r3.xy, c12.xy, r1.xy
- add r3.x, r3.x, c7.x
- ;mov r3.y, -r3.y
- sub r3.y, c12.z, r3.y
- ;add r3.x, r4.x
- mov oT3.xy, r3.xy
- ;mul oT3.xy, v0.xy, c9.xy
- ;mov oT3.xy, v7.xy
-
-
-